package com.woniu.service;

import java.util.List;
import java.util.Map;

import com.woniu.been.entity.CourseCategories;
import com.woniu.been.entity.Courses;
import com.woniu.been.entity.vo.CourseTreeVO;

public interface CourseCategoriesService {
    List<CourseCategories> getMainMenu(CourseCategories courseCategories);
    /**
     * 获取所有顶级课程大类
     * @return 顶级课程大类列表
     */
    List<CourseCategories> getAllTopLevelCategories();
    void addCategory(CourseCategories category);
    void updateCategory(CourseCategories category);
    void deleteCategory(Integer id);
    /**
     * 根据父分类名称获取子分类
     * @param parentCategoryName 父分类名称
     * @return 子分类列表
     */
    List<CourseCategories> getSubCategoriesByParentName(String parentCategoryName);
    
    /**
     * 根据课程大类ID获取课程大类信息
     * @param categoryId 课程大类ID
     * @return 课程大类对象
     */
    CourseCategories getCategoryById(Integer categoryId);
    
    /**
     * 根据父分类ID获取子分类列表
     * @param parentCategoryId 父分类ID
     * @return 子分类列表
     */
    List<CourseCategories> getSubCategoriesByParentId(Integer parentCategoryId);
    
    /**
     * 根据分类名称获取分类ID
     * @param categoryName 分类名称
     * @return 分类ID
     */
    Integer findCategoryIdByName(String categoryName);
    
    /**
     * 获取完整的课程树结构
     * @return 课程树结构
     */
    Map<String, Object> getCompleteCourseTree();
    
    /**
     * 根据课程大类ID获取完整的课程结构
     * @param categoryId 课程大类ID
     * @return 课程结构
     */
    Map<String, Object> getCourseTreeByCategoryId(Integer categoryId);
    
    /**
     * 获取完整的课程树结构（使用VO类）
     * @return 课程树结构列表
     */
    List<CourseTreeVO> getCompleteCourseTreeVO();
    
    /**
     * 根据课程大类ID获取完整的课程结构（使用VO类）
     * @param categoryId 课程大类ID
     * @return 课程结构
     */
    CourseTreeVO getCourseTreeVOByCategoryId(Integer categoryId);

    List<Courses> getClazzCenter();
}
